package pe.edu.upc.dew.horario403.controller;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import pe.edu.upc.dew.horario403.model.Usuario;
import pe.edu.upc.dew.horario403.service.UsuarioService;

/**
 *
 * @author pcsilshi
 */
public class LoginServlet extends HttpServlet {

    private UsuarioService usuarioService;

    @Override
    public void init(ServletConfig config) throws ServletException {
        ApplicationContext context = 
            WebApplicationContextUtils.getWebApplicationContext(
                config.getServletContext());
        this.usuarioService = context.getBean("usuarioService", UsuarioService.class);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("LoginServlet.doPost");

        // Obtener parametros del view
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        // Llamar al model
        Usuario usuario = usuarioService.login(username, password);

        // Setear el model en el view
        HttpSession session = req.getSession();
        session.setAttribute("usuario", usuario);

        req.setAttribute("mensaje", "Hola esto es JSP-EL");

        // Dispatch a la siguiente vista
        req.getRequestDispatcher("bienvenida.jsp").forward(req, resp);
    }
}
